/*
 * File:   ipc_controller_interface.h
 * Author: dolphinigle
 *
 * Created on December 2, 2011, 6:49 PM
 */

#ifndef IPC_CONTROLLER_INTERFACE_H
#define	IPC_CONTROLLER_INTERFACE_H

#include <string>
using std::string;

/**
 * Sends command to file system through IPC.
 */
class IPCControllerInterface {
public:
  virtual ~IPCControllerInterface() {}
  // Checks if a directory or file exists.
  virtual bool IsExist(const string& path)=0;

  virtual string Ls(const string& path)=0;

  virtual string Mkdir(const string& path)=0;

  virtual string Rm(const string& path)=0;

  // Copies a file/folder from path to real_path.
  virtual string Cp1(const string& path, const string& real_path)=0;

  // Copies a file/folder from real_path to path.
  virtual string Cp2(const string& real_path, const string& path)=0;

  // Outputs the content of a path.
  virtual string Cat(const string& path)=0;

  // Closes the file system.
  virtual string Close()=0;

  // Queries about the status of the file system.
  virtual string Status()=0;
};

#endif	/* IPC_CONTROLLER_INTERFACE_H */

